【发布时间】:2021-08-11 05:23:51
【问题描述】:
在我的项目中,shims-vue.d.ts 文件夹下有一个shims-vue.d.ts 文件:
declare module '*.vue' {
import type { DefineComponent } from 'vue'
const component: DefineComponent<{}, {}, any>
export default component
}
即使我将shims-vue.d.ts 重命名为foo.d.ts,声明仍然生效,所以我想知道.d.ts 文件名除了可读性之外还有什么重要意义吗?
由于我将它重命名为,它的声明仍然有效,无需手动导入重命名的 .d.ts 文件。
【问题讨论】:
-
不清楚您在这里实际问的是什么 - Typescript 不是 Java,没有规定文件名必须与源代码中的某些内容匹配。不管是
.ts、.d.ts、.tsx文件还是其他文件。 -
问题是询问声明文件命名是否具有任何运行时意义-afaik 我可以将类型声明放在
foo.d.ts、index.d.ts和whatever-else.d.ts中,并且仍然让tsc拾取它们. @zeeshan-siddiqui 解释了什么声明文件是什么,但没有提到任何关于文件命名的内容。 -
值得注意的是,
tsc在任何地方都没有指定他们的名字(不像.ts/.tsx/.js/.jsx,你仍然有指定文件名,地址@kaya3)。为了比较,index.js具有运行时意义(导入foo和foo/index.js是等价的);有没有和声明文件类似的属性? -
@superhawk610 我在
tsconfig.json中指定"rootDir": "src",然后我不必在任何地方指定.ts文件的名称;tsc只会从那个目录编译它们。 -
@kaya3 当然可以,但要实际使用任何
.ts文件(index.ts除外),您必须按名称显式导入它。您不必在任何地方按名称指定.d.ts文件,但它们仍然可以在环境中使用 - 那么,.d.ts文件名重要吗?还是它们只是语义?
标签: typescript vue.js typescript-typings vuejs3 typescript-declarations