草庐IT

typeScript

全部标签

javascript - Typescript 可以导入 CommonJS 模块吗?

我有这个文件://foo.jsvarfoo=function(){return"foo";};module.exports=foo;所以,我想将它导入到我的Typescript文件中。我试过了//typescript.tsimport*asfoofrom("./foo");没用。我读到了这个“环境”模块,所以我添加了这个//typescript.ts///import*asfoofrom("./foo");我在同一文件夹中添加了一个“foo.d.ts”文件,目的是让typescript知道我导入的函数的类型:declaremodule"foo"{functionfoo():string

javascript - 捆绑我的 JS/TS 项目是反模式吗?

我正在使用TypeScript在Angular2中开发一个项目,并试图确定我的工作流程。昨天,我看到了thisvideo来自GuyBedford关于包管理的内容。在其中,他提到了他认为捆绑是反模式的事实。我看到过类似的关于不再在angular-universityguide上进行捆绑的提及。.从观看视频后我读到的内容来看,在我看来,捆绑是反模式的原因是HTTP2allowsmultipleresponsesperrequest,并行发送。这似乎非常有用,因为对服务器的单个请求可以在单个文件中返回整个Angular应用程序。HTTP2支持现在是否普遍到足以过渡到非捆绑应用程序?有什么优点

javascript - 如何在 typescript 文件中使用 json 文件

我有一个名为men.json的文件。我想做等同于varmen=require('./men.json');。无论我尝试过什么,它都会寻找./men.json.js文件。我读到我不能使用import,因为它不是ts文件。什么是等效的要求行? 最佳答案 declaremodule'*.json'{var_:any;exportdefault_;}然后你可以importmemfrom'./mem.josn'将其放入tsconfig.json中包含的某个文件中现在您可以要求.json,这适用于任何其他文件格式(尽管您需要webpack,因为

javascript - Jasmine 测试用例未在已编译的 Typescript 中定义内启动

我正在处理一个测试项目,我正在编写一个纯JavascriptJasmineKarma设置来测试预编译的Typescript设置。但是,我无法启动测试用例。我可以在控制台中看到来自已编译typescript的控制台消息正常运行,但它根本不会启动测试脚本。请注意,这来自AngularApp,但这整个部分来自一个在没有Angular2的情况下制作和编译的部分。没有错误消息,除此之外显示运行了0/0测试,并且没有“component/to/test”的时间戳。在test.spec.js文件中,我有define("testName",["component/to/test"],function(

javascript - typescript 介意对象文字中实例化的顺序吗?

我使用的是最新的Typescript版本:2.6.2。我遇到了一个奇怪的情况,如果我执行foo({a:1,b:2})-事情不起作用,而如果我执行:foo({b:2,a:1})-它们确实有效。我有一个通用类,一个具有2个属性和一个函数的接口(interface)。代码如下:classMyClass{value:T;next(value:T):void{}}exportenumStateKey{backlogItems='backlogItems'}exportinterfaceState{backlogItems:number[];[key:string]:any}classA{priv

javascript - 如何选择 node_modules dist flavor 与 webpack 捆绑在一起

问题:在我将AJV.js升级到版本6.4后,我的vendorbundle包含“uri-js”ESNEXT版本而不是破坏IE11兼容性的ES5版本。分析:我认为AJV通过require('uri-js')调用引用uri-js,而uri-js有两种形式:/node_modules/uri-js/dist/:es5下一个出于某种原因,Webpack(V4.8)将uri-js的“esnext”风格捆绑到我的vendorbundle中,而不是使用“es5”。我找不到我必须如何/在何处指定我的首选构建目标。这是我的webpack.config.js:constpath=require("path"

javascript - 编译器不抛出 "Cannot find module"错误

在我的项目中我有2个文件:foo.jsconstimage=require('../this/path/is/wrong.png');boo.tsxconstimage=require('../this/path/is/wrong.png');在foo.js中TypeScript正确的发现图片不存在并抛出“Cannotfindmodule”错误,但是对于boo.tsx没有抛出错误所以该错误仅在应用程序崩溃时出现在运行时。如果我只是将boo.tsx重命名为boo.jsTS再次开始按预期抛出错误。这些是我认为可能相关的一些编译器选项:"module":"es2015","target":"

javascript - 如何在不溢出 RAM 的情况下为非常大的文件生成校验和并在 Javascript 中转换为 64 位?

问题:如何正确生成独立于浏览器的唯一、一致的校验和?另外,我想将SHA256/MD5校验和字符串转换为64位。如何在不需要大量RAM的情况下正确读取文件来生成校验和?即我们如何在不影响RAM的情况下处理1GB的文件例如Isitpossibletoreadafilewithoutloadingitintomemory?(见答案)Thisproject看起来很有希望,但也无法实现。我的意图是以XMB的block逐步/增量地生成校验和。这可能有助于避免一次使用过多的RAM。以下是代码,它没有按预期工作:letSIZE_CHECKSUM=10*Math.pow(1024,2);//10MB;B

javascript - TypeScript 和 Angular,执行顺序在这

我在Angular应用程序中有以下代码,html看起来像这样。onSubstringSelect在组件的.ts部分:onSubstringSelect(item:any){constdataPois=this.getPois(data);alert("2ndalert"+dataPois);//etc}getPois(data):any[]{this.api.getPois(data).subscribe((result:any)=>{alert("1stalert");returnresult.pois;}},(error:any)=>{console.error('error',e

javascript - 如何使用流作为 Browserify 的输入?

在Gulp中,我尝试编译TypeScript,连接它,然后通过Browserify运行它来处理require(然后在生产模式下if之后进行uglify)。Thissamplecode是我发现的最接近我正在尝试做的事情,但是它使用了一个中间文件。如果可能的话,我宁愿将事情保留在流中以避免中间文件的开销。由于Browserify输出一个流,它似乎也应该知道如何接受一个流。相关代码:vargulp=require('gulp');varbrowserify=requvarconcat=require('gulp-concat');varsourcemaps=require('gulp-sou