以下两者之间有什么区别?
type Foo = {
foo: string
};
interface Foo {
foo: string;
}
说“接口可以实现”是错误的,因为类型也可以实现
type A = { a: string };
class Test implements A {
a: string;
}
尽管您可以这样做,但您不能实现一个类型联合的类型,老实说,这完全有道理:)
这些之间的差异也已经存在于这个线程中。
type Foo = {
foo: string
};
interface Foo {
foo: string;
}
这里的类型Foo
和接口Foo
看起来几乎相似,所以很容易混淆。
接口
表示对象中应包含以下属性(此处为foo: string)。当语言不支持多重继承时使用。所以接口
可以是不同类之间的通用结构。
class Bar implements Foo {
foo: string;
}
let p: Foo = { foo: 'a string' };
但是类型
和接口
在非常不同的上下文中使用。
let foo: Foo;
let today: Date = new Date();
这里foo
的type
是foo
,today
是Date
。它就像一个变量的偏差,保存着其他变量的类型信息<代码>类型就像是接口、类、函数签名、其他类型甚至值的超集(比如类型mood='Good'|'Bad'
)。在末尾,类型
描述了变量的可能结构或值。
接口可以扩展
interface A {
x: number;
}
interface B extends A {
y: string;
}
而且还增强了
interface C {
m: boolean;
}
// ... later ...
interface C {
n: number;
}
但是,类型别名可以表示接口无法表示的某些内容
type NumOrStr = number | string;
type NeatAndCool = Neat & Cool;
type JustSomeOtherName = SomeType;
所以一般来说,如果你只有一个简单的对象类型,如你的问题所示,接口通常是一个更好的方法。如果你发现自己想写一些不能作为接口写的东西,或者想给一些东西一个不同的名字,类型别名更好。
我需要为对后端服务器的HTTP请求创建某种类型(使用Angular 2),例如:}, 我应该用什么来构建这些模型?谢谢!
我发现他们有同样的限制。 正如我所发现的,这两者之间没有明显的区别,因为它们都实施了相同的限制。我唯一注意到的是继承和实现。 类只能扩展到单个基类 一个类可以实现多个接口。
在TypeScript中,当创建.d.ts源代码声明文件时,哪个更可取,为什么? 或 我能说出的区别是接口不能有静态方法,所以你必须为此使用一个类。两者都不产生任何JS输出,所以也许没关系?
问题内容: 我不清楚两者之间的区别。 谢谢 问题答案: 它们非常相似,但是存在一些重要的技术差异: 抽象类允许您为某些方法提供默认的实现,但是接口不允许您提供任何实现。 您可以实现多个接口,但只能从一个抽象类继承。 这些差异影响应使用两种技术的方式: 您应该使用接口来 定义合同 。 抽象类对于 重用代码 很有 用 ……但是请注意,它不是重用代码的唯一方法。您还应该考虑其他方法,例如遏制。
问题内容: 嗨,我在我的经验中都使用了这两种方法,而我当时在想方法和类型都是 POST 和 GET 方法。 但是似乎它们并不相似。 如果我使用它正在工作,我是一个表格数据。 如果我写它不起作用,谁能解释他们之间的区别是什么..? 帮助是适当的。 问题答案: 类型(默认:’GET’)类型:字符串方法的别名。 如果您使用的是1.9.0之前的jQuery版本, 则应使用 type。 http://api
问题内容: Python中的抽象类和接口有什么区别? 问题答案: 有时您会看到以下内容: 因为Python没有(也不需要)正式的Interface协定,所以抽象和接口之间不存在Java风格的区别。如果有人努力定义一个正式的接口,它也将是一个抽象类。唯一的区别在于文档字符串中所述的意图。 当您进行鸭类输入时,抽象和接口之间的区别是令人不解的事情。 Java使用接口是因为它没有多重继承。 由于Pyth