Javascript 使用TypeScript向不同文件中的现有类型添加属性

Javascript 使用TypeScript向不同文件中的现有类型添加属性,javascript,reactjs,typescript,ecmascript-6,Javascript,Reactjs,Typescript,Ecmascript 6,我有一个文件具有类型或接口变量(所有这些变量都是导出的),我需要从不同的文件中为该变量添加新属性,而不需要扩展。我的意思是对不同文件中相同变量的更改 例如: 文件a: 我需要从文件b向接口添加新属性,而不使用createnewinterface变量,因为我在不同的位置使用接口 如何才能做到这一点?使用declare- 对于已经延长的- import { ButtonPresentationProps } from "./myfile"; …你会用- declare &qu

我有一个文件具有
类型
接口
变量(所有这些变量都是导出的),我需要从不同的文件中为该变量添加新属性,而不需要扩展。我的意思是对不同文件中相同变量的更改

例如: 文件a:

我需要从
文件b
向接口添加新属性,而不使用createnewinterface变量,因为我在不同的位置使用接口

如何才能做到这一点?

使用declare-

对于已经延长的-

import { ButtonPresentationProps } from "./myfile";

…你会用-

declare "./myfile" {
    export interface ButtonPresentationProps {
        buttonType?: "outline" | "solid";
        variant?: ButtonVariants;
    }
}
只要它在编译链中的某个位置,它就会被使用,因此通常情况下,粘贴在一个*.d.ts文件中并直接导入是很有用的,但是可以随意粘贴在使用它的同一个文件中。

使用declare-

对于已经延长的-

import { ButtonPresentationProps } from "./myfile";

…你会用-

declare "./myfile" {
    export interface ButtonPresentationProps {
        buttonType?: "outline" | "solid";
        variant?: ButtonVariants;
    }
}

只要它在编译链的某个地方,它就会被使用,因此,通常情况下,粘贴在*.d.ts文件中并直接导入是很有用的,但请随意粘贴在使用的同一个文件中。

注意,这将适用于任何输入文件,甚至是库等,所以这是修复不正确的问题的一个好方法等:-)我创建了两个文件a和B a文件:接口MyInterface{name:string;}导出默认MyInterface;B文件:从“/A”导入MyInterface;声明模块'./A'{interface MyInterface{age:number;}}}并且在Main.ts const test:MyInterface={name:test,age:5,}中,但它返回错误“Type'{name:string;age:number;}”'不可分配给类型'MyInterface'。对象文字只能指定已知属性,并且'MyInterface'类型中不存在'age'。“您可以在此处看到我的代码我的错误-忘记将
导出
添加到第二个。顺便说一句,如果你能帮助的话,你不应该使用
导出默认值
,它产生的问题比它解决的问题多得多,只是要注意,这对任何输入文件都有效,甚至是库等,所以这是修复不正确的东西的好方法等等:-)我创建了两个文件a和B a文件:接口MyInterface{name:string;}导出默认MyInterface;B文件:从“/A”导入MyInterface;声明模块'./A'{interface MyInterface{age:number;}}}并且在Main.ts const test:MyInterface={name:test,age:5,}中,但它返回错误“Type'{name:string;age:number;}”'不可分配给类型'MyInterface'。对象文字只能指定已知属性,并且'MyInterface'类型中不存在'age'。“您可以在此处看到我的代码我的错误-忘记将
导出
添加到第二个。顺便说一句,如果你能帮助的话,你不应该使用
导出默认值
——这会产生比解决问题多得多的问题——你正在寻找声明合并。你正在寻找声明合并。