TypeScript 需要类型检查
TypeScript require with type checking
我正在使用 TypeScript v1.4.1 并希望需要一个外部模块(在本例中 "chai")并对其进行类型检查。
但是,我 运行 与此代码存在某种命名冲突:
/// <reference path="../typings/node/node.d.ts" />
/// <reference path="../typings/chai/chai.d.ts" />
/// <reference path="../typings/mocha/mocha.d.ts" />
var chai = require("chai");
var expect = chai.expect;
var assert = chai.assert;
describe("TEST", () =>
{
it("true should be true", (done)=>
{
expect(true).to.be.true;
done();
});
});
使用此定义文件:
declare module chai {
...
}
declare module "chai" {
export = chai;
}
编译出现这些错误:
test/test.ts(5,5): error TS2300: Duplicate identifier 'chai'.
typings/chai/chai.d.ts(6,16): error TS2300: Duplicate identifier 'chai'.
看来我唯一的选择是在 test.ts 中重命名我的 chai
变量名。这看起来很笨重并且不会类型检查重命名的 chai
变量的使用。
有什么建议吗?
使用 import
关键字和 require
而不是 var
import chai = require('chai');
如果您还没有
,请使用 --module commonjs
进行编译
或者,如果出于某种原因您不希望测试代码成为外部模块,添加类型注释将保留类型检查。
var c: typeof chai = require("chai");
自从 TypeScript 3.9 Beta 发布以来,可以使用 require
和输入
示例:
const {someValue} = require('fs')
"TypeScript now automatically detects the types of imports you’re using to keep your file’s style clean and consistent."
参考。 https://devblogs.microsoft.com/typescript/announcing-typescript-3-9-beta/
我正在使用 TypeScript v1.4.1 并希望需要一个外部模块(在本例中 "chai")并对其进行类型检查。
但是,我 运行 与此代码存在某种命名冲突:
/// <reference path="../typings/node/node.d.ts" />
/// <reference path="../typings/chai/chai.d.ts" />
/// <reference path="../typings/mocha/mocha.d.ts" />
var chai = require("chai");
var expect = chai.expect;
var assert = chai.assert;
describe("TEST", () =>
{
it("true should be true", (done)=>
{
expect(true).to.be.true;
done();
});
});
使用此定义文件:
declare module chai {
...
}
declare module "chai" {
export = chai;
}
编译出现这些错误:
test/test.ts(5,5): error TS2300: Duplicate identifier 'chai'.
typings/chai/chai.d.ts(6,16): error TS2300: Duplicate identifier 'chai'.
看来我唯一的选择是在 test.ts 中重命名我的 chai
变量名。这看起来很笨重并且不会类型检查重命名的 chai
变量的使用。
有什么建议吗?
使用 import
关键字和 require
而不是 var
import chai = require('chai');
如果您还没有
,请使用--module commonjs
进行编译
或者,如果出于某种原因您不希望测试代码成为外部模块,添加类型注释将保留类型检查。
var c: typeof chai = require("chai");
自从 TypeScript 3.9 Beta 发布以来,可以使用 require
和输入
示例:
const {someValue} = require('fs')
"TypeScript now automatically detects the types of imports you’re using to keep your file’s style clean and consistent."
参考。 https://devblogs.microsoft.com/typescript/announcing-typescript-3-9-beta/