如何独立于模块本身导出和导入类型定义。
在flowtype中,它看起来像这样:
文件sub.js
使用myType
导出类型export type myType = {id: number};
,文件main.js
使用import type {myType} from './sub.js';
导入类型
答案 0 :(得分:2)
Typescript 3.8及更高版本仅具有进出口类型:
https://devblogs.microsoft.com/typescript/announcing-typescript-3-8/#type-only-imports-exports
import type { SomeThing } from "./some-module.js";
export type { SomeThing };
答案 1 :(得分:1)
您只需正常导入它,编译器就会得出结论,因为未使用任何具体代码,因此不需要发出import语句。
这是一个例子:
component.ts
export interface MyInterface {
name: string;
}
app.ts
import { MyInterface } from './component';
class MyClass implements MyInterface {
constructor(public name: string) { }
}
app。 js 文件很简单(ES2015版本):
class MyClass {
constructor(name) {
this.name = name;
}
}
或以较旧的ES5术语:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var MyClass = /** @class */ (function () {
function MyClass(name) {
this.name = name;
}
return MyClass;
}());
这里重要的是TypeScript编译器已经计算出仅在编译时才需要导入,而在运行时则不需要。