[英]using typescript definition file (.d.ts) for typing javascript code doesn't warn about primitive type errors
我有简单的 js 组件
./component/index.js:
export const t = 'string value';
它有 typescript 定义文件
./component/index.d.ts:
export const t: number;
非常简单的 typescript/react 项目正在使用这个组件:
./demo/index.tsx:
import React from 'react';
import ReactDOM from 'react-dom';
import { t } from '../component';
ReactDOM.render(<>{ t }</>, document.getElementById('app'));
预期结果:typescript 错误,表明 't' 的值应为数字但接收到的字符串。
实际结果:typescript 没有错误或警告。
这是重现此问题的小项目,我试图使其尽可能小,只需执行以下操作:
git clone git@github.com:omatviiv/ts-definition-file-test.git
npm i
npm run dev
我检查了官方文档,但没有帮助(他们在示例中提到了12
而不是数字类型,这令人困惑),还提供了游乐场似乎对这个用例没有用处。
我相信,当您提供d.ts
时,它会将其用作福音,并且会完全忽略代码文件中的任何代码。
所以在你的情况下t
是一个number
。 所以在 react <div>{t}</div>
是完全有效的,react 会强制它显示数字,所以这里不会出现任何类型错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.