我正在关注angular官方文档,我可以看到以下代码:
it("#getObservableValue should return value from observable", (done: DoneFn) => {
service.getObservableValue().subscribe(value => {
expect(value).toBe("observable value");
done();
});
});
我想知道DoneFn是从哪里来的,因为我在输入时没有任何错误。
如果您遵循接口定义,您将看到它位于:
node_modules/@types/jasmine/index.d.ts
/** Action method that should be called when the async work is complete */
interface DoneFn extends Function {
(): void;
/** fails the spec and indicates that it has completed. If the message is an Error, Error.message is used */
fail: (message?: Error | string) => void;
}
您不需要导入或使用它,它主要用于参考。我不确定@types
到底是如何工作的,但我想如果项目中有一个@types
类型,节点知道如何找到定义,因为它们都在这个文件夹中进行了索引。
更新:
我发现这是由tsconfig.json
配置的
"typeRoots": [
"node_modules/@types"
],