我有一个从另一个模块导入的构造函数,但是Typescript抱怨尽管名称范围很广,但找不到该名称。一个小例子:
import {
MIDIEvents, IMIDIChannelEvent, MIDIEventType,
} from "@thayes/midi-tools";
const {
NoteOnEvent,
} = MIDIEvents;
console.log({
NoteOnEvent,
});
const ev:IMIDIChannelEvent = {
channel: 1,
type: MIDIEventType.NoteOn,
};
console.log(
(ev as NoteOnEvent).channel
);
当我尝试编译(或使用ts-node
运行)时,出现此错误:
TSError: ⨯ Unable to compile TypeScript:
test.ts(20,5): error TS2304: Cannot find name 'NoteOnEvent'.
如果我注释了最后的console.log()
行,则控制台会正确注销该NoteOnEvent
作为类构造函数。似乎只有类型断言无法找到名称。有人知道为什么吗?
答案 0 :(得分:0)
您在此处有一个名为NoteOnEvent
的值,但是在范围内没有该名称的 type 。 const
行不会破坏类型。你可以写
type NoteOnEvent = MIDIEvents.NoteOnEvent;
假设该类型确实存在