visual studio - 如何使用生成的 *.d.ts 文件
我正在使用以下 Visual Studio 2017 扩展为我的 MVC-ViewModels 生成 TypeScript 接口:TypeScript Definition Generator
我尝试过不同的,但它们都产生相同的输出(*.cs.d.ts 文件):
declare module server {
interface mycustomtype {
id: any;
description: string;
}
}
在我的其他 TypeScript 文件中,我尝试了使用该模块/类型的不同变体,但它们都会产生错误:
import { mycustomtype } from '.././../../../../Models/mycustomtype.cs';
上述会产生错误,提示 mycustomtype 不是一个模块。如果我将定义生成器的输出更改为 export module,模块可以被识别,但类型不能。
我也尝试过使用:
/// <reference path=".././../../../../Models/mycustomtype.cs" />
上述方法可行,但在 Visual Studio 中,智能感知既不显示 server.mycustomtype,也不显示 mycustomtype。
所以我的问题是:我如何使用这些已声明的模块?在另一篇文章中,我发现声明一个没有引号的模块会创建一个“内部”模块。问题出在这里吗?由于有几个 TypeScript 定义生成器生成的输出完全相同,我猜问题不是输出,而是我自己。
答案#1
d.ts 是你的定义文件,它与模块无关,仅用于智能感知。
所以,.d.ts 文件仅用于告诉 TypeScript 该类/接口/枚举已在其他地方创建。顺便说一下,你需要在某处实现它。否则你可以描述一个从 API 请求中获得的变量,或者像函数变量那样描述它。
这就是为什么我看不到使用它的必要。我建议直接使用导出和导入。在我编写的 TypeScript 定义生成器中,我意识到了这种可能性。