【问题标题】:Use typescript only for typing javascript with JSDoc仅将 typescript 用于使用 JSDoc 键入 javascript
【发布时间】:2022-11-10 02:35:05
【问题描述】:

我想将类型添加到现有的 JS 项目(仅用于 IDE 语法高亮,不适用于添加到库 @types/)

所以,我有文件'TestComponent.js':

export const TestComponent = (props) => {
    return <div>{props.someString}</div>;
};

对于类型声明,我创建了“TestComponent.d.ts”:

interface TestComponentProps {
    someString: string;
}

export type TestComponent = (props: TestComponentProps) => JSX.Element;

并添加到 TestComponents.js JSDoc 类型:

/** @type {import('./TestComponent').TestComponent} */
export const TestComponent = (props) => {
    return <div>{props.someString}</div>;
};

现在 VSCode 将 props 突出显示为具有 someString 键的对象。

可以为此使用打字稿吗?

我知道我可以只使用 JSDoc,但我不太喜欢 JSDoc 语法。

也许对此有更好的解决方案?

【问题讨论】:

  • 听起来像是 VSCode 团队决定在 JS 文件中启用某些 TS 分析功能的原因之一;-)

标签: typescript jsdoc type-declaration


【解决方案1】:

是的,它完全没问题。我建议尽可能在 js 文件中定义类型(JSDocs 中的接口并不真正受支持)。这样做的原因是即使拥有 typesctipt 文件(您的应用程序将忽略)也可以,您也不想要太多它们,因为随着您的应用程序的增长它会变得混乱。

所以我的建议: 当您可以在 js 文件中使用 JSdocs(当然是打字稿版本)时。当您不能或需要复杂类型/利基案例时,请使用 ts 文件。

【讨论】:

    猜你喜欢
    • 2020-11-17
    • 2020-02-21
    • 2022-01-03
    • 2020-02-07
    • 2021-02-10
    • 2020-09-10
    • 2020-07-16
    • 2021-09-26
    相关资源
    最近更新 更多