Typescript如何将我们导入的类型定义与相应的实现联系起来?

Typescript如何将我们导入的类型定义与相应的实现联系起来?,typescript,ecmascript-6,typescript2.2,Typescript,Ecmascript 6,Typescript2.2,当我们使用库typedefinition(.d.ts)文件时,typescript如何将我们导入的内容的定义与相应的类型相关联 例如,如果我们: npm install @types/chai @types/mocha --save-dev 然后在bar.spec.js中: import { expect } from 'chai'; Typescript现在可以理解expect的类型化外观了吗?这需要经过什么过程 在我看来,类型定义相当复杂,有着漫长的进化历史 在这种情况下,node\u

当我们使用库typedefinition(.d.ts)文件时,typescript如何将我们导入的内容的定义与相应的类型相关联

例如,如果我们:

npm install @types/chai @types/mocha --save-dev
然后在
bar.spec.js
中:

import { expect } from 'chai';

Typescript现在可以理解
expect
的类型化外观了吗?这需要经过什么过程

在我看来,类型定义相当复杂,有着漫长的进化历史

在这种情况下,
node\u modules/@types
是一种内置的“类型根”,因此TS知道何时导入非相对模块(例如
“chai”
是非相对的,
“/chai”
是相对的),以便在
node\u modules/@types
中查找定义以进行解析。例如,来自“chai”的
导致TS查找定义的
节点\模块/@types/chai/index.d.TS
。这就是TS如何知道您可以从该模块导入哪些内容以及这些内容的外观

你可以阅读更多关于

.d.ts
文件的编写方式可能很难理解(特别是因为大多数已发布的库都是同时发布的),但简而言之,它包含一个类型的成员。这就是TS如何知道从“chai”导入{expect}是什么


同样值得一提的是,柴目前的定义似乎并不完全符合标准。然而,这并没有使它们在任何方面不兼容。

在我看来,类型定义相当复杂,有着漫长的进化历史

在这种情况下,
node\u modules/@types
是一种内置的“类型根”,因此TS知道何时导入非相对模块(例如
“chai”
是非相对的,
“/chai”
是相对的),以便在
node\u modules/@types
中查找定义以进行解析。例如,来自“chai”的
导致TS查找定义的
节点\模块/@types/chai/index.d.TS
。这就是TS如何知道您可以从该模块导入哪些内容以及这些内容的外观

你可以阅读更多关于

.d.ts
文件的编写方式可能很难理解(特别是因为大多数已发布的库都是同时发布的),但简而言之,它包含一个类型的成员。这就是TS如何知道从“chai”导入{expect}是什么

同样值得一提的是,柴目前的定义似乎并不完全符合标准。不过,这并没有使它们在任何方面不兼容