Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 键入窗口或全局属性的建议方法是什么?_Typescript_Typescript Typings - Fatal编程技术网

Typescript 键入窗口或全局属性的建议方法是什么?

Typescript 键入窗口或全局属性的建议方法是什么?,typescript,typescript-typings,Typescript,Typescript Typings,在index.html中导入外部全局脚本: <script src="https://a.b.com/A.js"></script> 建议以什么方式编写声明文件?您可以添加全局修改声明文件: export interface Client { foo(): void; } export interface A { createClient(options): Client; } declare global { interface Windo

在index.html中导入外部全局脚本:

<script src="https://a.b.com/A.js"></script>

建议以什么方式编写声明文件?

您可以添加全局修改声明文件:

export interface Client {
    foo(): void;
}

export interface A {
    createClient(options): Client;
}

declare global {
    interface Window {
        A: A;
    }
}
然后您可以将其用作:

const client = window.A.createClient({});
client.foo();

更多信息

如何命名全局修改声明文件以及将其放置在何处?它应该更新tsconfig.json吗?你可以称之为index.d.ts,我认为这并不重要。更让我困惑的是,我应该把index.d.ts放在哪里,以及如何通知TypeScript编译器解决它?是src/@types/window/index.d.ts吗?只要文件包含在ts项目中,位置就无关紧要。由您决定项目的结构
const client = window.A.createClient({});
client.foo();