admin管理员组文章数量:1241094
Someone could explain me what is the difference between class and object in typescript.
class greeter{
Name: string;
Sayhello(){
console.log("hello")
}
}
Before I using this
var greeter = {
Name : "",
Sayhello: function sayhello(){
console.log("hello");
}
}
Someone could explain me what is the difference between class and object in typescript.
class greeter{
Name: string;
Sayhello(){
console.log("hello")
}
}
Before I using this
var greeter = {
Name : "",
Sayhello: function sayhello(){
console.log("hello");
}
}
Share
Improve this question
edited Jul 17, 2024 at 8:24
VLAZ
29.1k9 gold badges62 silver badges84 bronze badges
asked May 30, 2016 at 20:18
Jota RodríguezJota Rodríguez
1251 silver badge6 bronze badges
5
- 5 Please take the time to make the code in the question properly formatted, including note that both TypeScript and JavaScript are case-sensitive languages. If you can't be bothered to make the question clear and correct, why should other people be bothered to answer it clearly and correctly? – T.J. Crowder Commented May 30, 2016 at 20:25
- Okay, the answer you've received answers the question at the beginning of the question, so I've removed the off-topic one at the end. (Note: SO is a very active place, please don't ask-and-run. Stick around so you can clarify your question in response to queries.) – T.J. Crowder Commented May 30, 2016 at 20:41
-
In example 1:
(new greeter).Name
is a string – michaelmesser Commented May 30, 2016 at 22:57 -
In example 2:
greeter.Name
is a string – michaelmesser Commented May 30, 2016 at 22:57 - They are not the same – michaelmesser Commented May 30, 2016 at 22:57
2 Answers
Reset to default 8It is up to you. Both of these are valid and idiomatic TypeScript:
export class Greeter {
name: '';
sayHello() {
console.log('hello');
}
}
and
export const greeter = {
name : '',
sayHello: () => {
console.log('hello');
}
}
// if you need just the type of greeter for some reason
export type Greeter = typof greeter;
If you don't have a need for the class, don't use them.
But you may find benefits of classes if you want to:
- manage your dependencies with Dependency Injection
- use multiple instances
- use polymorphism
If you have multiple instances, using classes or prototype constructor functions, allow you to share method implementations across all instances.
Even if you are in a purely functional paradigm, using prototype constructor functions or classes can be useful for creating monads.
If you only have one instance, and do not need for a constructor, an object is is probably fine.
There are many differences. On a basic level, a class is an object that can be used to create other objects with a specific shape and functionality. It provides syntactic sugar for functionality that would be a lot more work to acplish with plain objects and functions.
You should take some time to read about what classes are in the TypeScript Handbook because answering your question in detail would be equivalent to writing a few chapters of a book—especially when tailoring it for TypeScript.
本文标签: javascriptDifference between Class and Object in typescriptStack Overflow
版权声明:本文标题:javascript - Difference between Class and Object in typescript - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1740088274a2223865.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论