为什么打字稿编译器在生成的 JavaScript 中省略了“should.js”导入?

2024-05-05

我面临一个奇怪的问题。在我的(可以说)a.ts我有 -

/// <reference path="../typings/mocha/mocha.d.ts" />
/// <reference path="../typings/should/should.d.ts" />

import should = require('should');

import something_else = require('../something-else');

现在当我使用命令编译时 -

tsc -m commonjs --outDir "./build" "src/test/a.ts"

我生成的 javascript 没有require for should -

/// <reference path="../typings/mocha/mocha.d.ts" />
/// <reference path="../typings/should/should.d.ts" />
var service_manager = require('../routes/service-manager');

这似乎是打字稿编译器中的一个错误,但我可能做错了。或者如果有解决方法,请分享。


它这样做是因为您没有使用它。一旦你真正使用它,它就会粘住should多变的。例如

/// <reference path="../typings/mocha/mocha.d.ts" />
/// <reference path="../typings/should/should.d.ts" />

import should = require('should');
var persist = should; 

原因:它允许您单独使用类型信息,而无需运行时依赖require('should')。它还允许您在 AMD 场景中进行延迟加载。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么打字稿编译器在生成的 JavaScript 中省略了“should.js”导入? 的相关文章

随机推荐