如何在typescript中创建typings别名,就像我们在babelrc和xFF1F中创建依赖别名一样;
TL;博士: 如何像在babelrc中创建依赖别名那样在typescript中创建键入别名? 完整问题: 假设我正在为iOS和web开发,并且只想编写一组代码。我使用的是如何在typescript中创建typings别名,就像我们在babelrc和xFF1F中创建依赖别名一样;,typescript,react-native,visual-studio-code,typescript-typings,Typescript,React Native,Visual Studio Code,Typescript Typings,TL;博士: 如何像在babelrc中创建依赖别名那样在typescript中创建键入别名? 完整问题: 假设我正在为iOS和web开发,并且只想编写一组代码。我使用的是React Native和一个界面与React Native非常相似的东西,为了解决这个问题,让我们称它为Respond Native(一个虚构的名称) 在这个项目中,我使用了一个名为的组件。Respond Native上的Picker(仍然是由组成的库)有一个属性在Respond Native中不存在,称为onswip 但除此
React Native
和一个界面与React Native
非常相似的东西,为了解决这个问题,让我们称它为Respond Native
(一个虚构的名称)
在这个项目中,我使用了一个名为
的组件。Respond Native
上的Picker
(仍然是由组成的库)有一个属性在Respond Native
中不存在,称为onswip
但除此之外,接口的其余部分基本相同。像这样的细微差别到处都是Respond Native
为了使打字更容易,我有两个几乎相同的项目唯一不同的是,我在使用Respond Native
的项目的.babelrc
中添加了一个别名:
/.babelrc
{
...
“插件”:[
...
[“模块解析器”{
“根”:[“/”],
“别名”:{
//别名在这里
“本机响应”:“本机响应”
}
}]
]
}
但是,当我编写
时,编辑器不知道依赖项别名,也不知道proponswip
来自何处
抱歉这么长时间的积累
我的问题是,如何在创建类型别名(就像我在babelrc中所做的那样)时执行相同的操作,以便VS代码知道在检查类型时使用哪种类型声明?(假定
Respond Native
还声明了一个Picker
类型/接口)TS具有与babel相同的确切机制,即路径别名:
tsconfig.json
{
"compilerOptions": {
"paths": {
// ...
}
}
}
但是,由于此配置仅适用于用户源代码,而不适用于任何节点\u模块
,因此需要花费一些精力来“引导”TS了解您的意图
例如,preact
是一个库,其API与react
中的一个非常相似。假设您使用react
编写代码,然后您想切换到preact
,但不想更改代码
typings/
文件夹。如果存在匹配项,请使用它,否则,请回退以查找节点\u模块/
通过这个设置,再加上一个软链接,我们可以将react
的类型定义重定向到preact
中的一个
ln -s $PWD/node_modules/preact/src/index.d.ts $PWD/typings/react/index.d.ts
感谢你的回答!这听起来可能很愚蠢,但如果TS要先研究
打字/
,我能把react和preact打字都放进去吗?顺便说一句,预演中的精彩投球!(虽然也许你不是有意推广)我想我会在我的下一个项目中使用它。是的,你可以。您还可以创建自己的自定义index.d.ts
文件,有选择地公开/修改原始库的类型定义。从“react”导入{Component};接口MyComp扩展组件{…};导出{MyComp as Component}代码>随便。关于preact库,我不想推广它。我个人觉得preact唯一的好处是束大小下降。缺点是,与以反应为中心的生态系统集成可能会很麻烦。你会在这里和那里遇到细微差别,导致难以捕捉的意外问题-/如果我要推广任何东西,请尝试下一个项目;-)哈哈,我会试试这个把戏,然后再打给你。苗条看起来确实很有前途。我一定会试试的!另外,感谢您对preact的内部观点。
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"*": ["typings/*"]
}
}
}
ln -s $PWD/node_modules/preact/src/index.d.ts $PWD/typings/react/index.d.ts