繁体   English   中英

使用 typescript 定义文件 (.d.ts) 键入 javascript 代码不会警告原始类型错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM