在 TypeScript 中,类是定义对象的蓝图,它是构造面向对象程序的基础。在本文中,我们将详细讨论如何在 TypeScript 中定义类的属性和方法。
定义类的属性
类的属性是类所拥有的变量。它们可以是基本类型,如字符串、数字或布尔类型,也可以是自定义类型。下面是在 TypeScript 中定义属性的语法:
class MyClass { myProperty: number; }
在上面的代码中,我们定义了一个名为 myProperty
的属性,这个属性是一个数字类型的数据。可以在类外部或内部使用点记号或方括号来访问它。
const myObject = new MyClass(); console.log(myObject.myProperty); // 输出: undefined myObject.myProperty = 10; console.log(myObject.myProperty); // 输出: 10 myObject['myProperty'] = 20; console.log(myObject['myProperty']); // 输出: 20
在上述代码中,我们创建了一个名为 myObject
的 MyClass
对象,并访问了它的属性。
注意: 如果一个属性没有被初始化,并且没有在构造函数中被赋值,那么他将会被初始化为
undefined
。
定义类的方法
类的方法是类中声明的函数。它们可以访问类的属性和其他方法,也可以使用自定义类型。在 TypeScript 中,我们可以定义公共和私有方法。
下面是在 TypeScript 中定义方法的语法:
class MyClass { myMethod(param1: number, param2: string): void { console.log(param1, param2); } }
在上面的代码中,我们定义了一个名为 myMethod
的方法,这个方法接受一个数字类型的参数 param1
和一个字符串类型的参数 param2
,并使用 console.log
函数打印这些参数。
const myObject = new MyClass(); myObject.myMethod(10, 'hello'); // 输出: 10, hello
在上述代码中,我们创建了一个名为 myObject
的 MyClass
对象,并调用了它的方法。
公共和私有方法
在 TypeScript 中,公共方法是可以从类的外部访问的方法。私有方法不能从类的外部访问,只能从内部调用。
下面是在 TypeScript 中定义私有方法的语法:
-- -------------------- ---- ------- ----- ------- - ------- ------------------ ---- - ----------------- -- - ------- ---------- - ------ ----------------- ---- - ----------------- -- - ------ ---------- ----------------------- - -
在上面的代码中,我们定义了一个名为 myPrivateMethod
的私有方法和一个名为 myPublicMethod
的公共方法。在 myPrivateMethod
中,我们只是简单地打印一条消息。在 myPublicMethod
中,我们打印了另一条消息,并调用了私有方法。
const myObject = new MyClass(); myObject.myPublicMethod(); // 输出: This is a public method. This is a private method. myObject.myPrivateMethod(); // 编译错误: Property 'myPrivateMethod' is private and only accessible within class 'MyClass'.
在上述代码中,我们创建了一个名为 myObject
的 MyClass
对象,并调用了它的公共方法。当我们尝试从外部调用 myPrivateMethod
时,编译器会发出错误,因为 myPrivateMethod
是一个私有方法,不能从外部访问。
总结
在 TypeScript 中,类是构建面向对象程序的基础。在本文中,我们详细介绍了如何在 TypeScript 中定义类的属性和方法。我们讨论了如何访问属性和方法,以及如何定义公共和私有方法。希望这篇文章能对你有所帮助!下面是完整的示例代码:
-- -------------------- ---- ------- ----- ------- - ----------- ------- ---------------- ------- ------- -------- ---- - ------------------- -------- - ------- ------------------ ---- - ----------------- -- - ------- ---------- - ------ ----------------- ---- - ----------------- -- - ------ ---------- ----------------------- - - ----- -------- - --- ---------- --------------------------------- -- --- --------- ------------------- - --- --------------------------------- -- --- -- ---------------------- - --- ------------------------------------ -- --- -- --------------------- --------- -- --- --- ----- -------------------------- -- --- ---- -- - ------ ------- ---- -- - ------- ------- --------------------------- -- ----- -------- ----------------- -- ------- --- ---- ---------- ------ ----- ----------
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64823aa248841e98941abef4