Mục lục nội dung

Chức năng của TypeScript là gì?Ưu điểm của Typescript là gì?Nhược điểm của Typescript là gì?

Typescript là gì? hôm nay chúng ta sẽ cùng nhau phân tích cặn kẽ điểm mạnh và nhược điểm của typescript để rất có thể quyết định coi nên thực hiện nó ra sao cho tác dụng nhé!

Định nghĩa Typescript là gì?

*

Khác cùng với sự đơn giản của JavaScript, du TypeScript cũng đồng thời thừa kế nhiều định nghĩa, tư tưởng của phong phú các ngôn ngữ C#, Java,… nhưng TypeScript lại có yêu cầu cao về trơ thổ địa tự rõ ràng. 

TypeScript được xem như là một phiên bạn dạng nâng cao hơn nữa của JavaScript bởi vì nó có phong cách thiết kế thêm nhiều công dụng tiện lợi hơn, cải tiến hơn trường đoản cú những điểm yếu của JavaScript như những lớp hướng đối tượng và Static Structural typing, ngoài ra TypeScript còn có thể chuyển động rộng rãi cho những ứng dụng của ngữ điệu Angular2 cùng Nodejs.

Bạn đang xem: Typescript là gì

Tìm việc làm Typescript từ các công ty HOT bắt đầu nhất

Chức năng của TypeScript là gì?

Static Typing

Một trong những tính năng không thể lẫn vào đâu được của TypeScript kia là cung cấp ‘static typing’. Đồng nghĩa cùng với việc chúng ta có thể khai báo kiểu đến biến, và trình biên dịch sẽ giảm được phần trăm gán không đúng kiểu của những giá trị. Trường hợp khai báo loại bị bỏ qua, chúng sẽ được tự động hóa phát hiện tại từ code của bạn.

Ví dụ: những biến, thông số của hàm hoặc cực hiếm trả lại hoàn toàn có thể có những kiểu được tư tưởng khi khởi tạo:

var burger: string = "Spaghetti", // String calories: number = 400, // Numeric tasty: boolean = true; // Boolean// Alternatively, you can omit the type declaration:// var pasta = "Spaghetti";// The function expects a string và an integer.// It doesn"t return anything so the type of the function itself is void.function speak(food: string, energy: number): void console.log("Our " + food + " has " + energy + " calories.");speak(pasta, calories);Toàn bộ khai báo kiểu có khả năng sẽ bị xóa trong trường thích hợp TypeScript biên dịch thành JavaScript thành công

// JavaScript code from the above TS example.var burger = "Spaghetti", calories = 400, tasty = true; function speak(food, energy) console.log("Our " + food + " has " + energy + " calories.");speak(Spaghetti, calories);Biên dịch tsc đã báo lỗi khi họ thao tác không phù hợp lệ. Ví dụ:

// The given type is boolean, the provided value is a string.var tasty: boolean = "I haven"t tasted it yet";main.ts(1,5): error TS2322: Type "string" is not assignable to lớn type "boolean".Hệ thống cũng biến thành báo lỗi nếu làm việc truyền không đúng tham số cho tới một hàm:

function speak(food: string, energy: number): void console.log("Our " + food + " has " + energy + " calories.");// Arguments don"t match the function parameters.speak("Sea Food Spaghetti", "a ton of");main.ts(5,30): error TS2345: Argument of type "string" is not assignable khổng lồ parameter of type "number".

Các kiểu dữ liệu được sử dụng phổ cập nhất:

Any – Một vươn lên là với kiểu dáng này rất có thể có giá chỉ trị là 1 trong string, number hoặc bất kỳ kiểu nào.String – Giống công dụng của string vào JavaScript, hoàn toàn có thể được bao quanh bởi ‘dấu nháy đơn’ hoặc “dấu nháy kép”.Number – tất cả giá trị số trong hàm đầy đủ được màn trình diễn bởi đẳng cấp number, không tồn tại định nghĩa riêng cho số nguyên (interger), số thực (float) cũng giống như các thứ hạng khác.Boolean – true hoặc false, sử dụng 0 và 1 sẽ gây nên lỗi biên dịch.Arrays – bao gồm 2 kiểu cú pháp: my_arr: number<>; hoặc my_arr: Array.Void – áp dụng khi hàm ko trả lại ngẫu nhiên giá trị nào.Để xem danh sách toàn bộ các hình dạng biến, phát âm tài liệu khuyên bảo của TypeScript trên đây.

Interfaces

Chức năng thiết yếu của Interfaces là sử dụng để kiểm tra, coi một đối tượng người tiêu dùng có cân xứng với một cấu tạo nhất định tốt không, trợ giúp trong giai đoạn giai đoạn phân phát triển.

Bằng phương pháp định nghĩa một interface, ta hoàn toàn có thể đặt tên trong trường hợp có sự kết hợp đặc trưng của những biến, đảm bảo an toàn rằng chúng luôn luôn đi cùng nhau.

Ví dụ:

// Here we define our Food interface, its properties, & their types.interface Food name: string; calories: number;// We tell our function to lớn expect an object that fulfills the Food interface. // This way we know that the properties we need will always be available.function speak(food: Food): void console.log("Our " + food.name + " has " + food.calories + " calories.");// We define an object that has all of the properties the Food interface expects.// Notice that types will be inferred automatically.var ice_cream = name: "cookies", calories: 250speak();Ngoài ra bạn cần phải biết rằng, lắp thêm tự của các thuộc tính không quan trọng bằng việc họ phải fill đủ số lượng các thuộc tính cùng đúng kiểu. Nếu như một thuộc tính nào kia bị thiếu, hoặc không nên kiểu, hoặc không nên tên, trình biên dịch sẽ chú ý chúng ta.

interface Food name: string; calories: number;function speak(food: Food): void console.log("Our " + food.name + " has " + food.calories + " grams.");// We"ve made a deliberate mistake và name is misspelled as nmae.var cookies = nmae: "cookies", calories: 250speak(cookies);main.ts(16,7): error TS2345: Argument of type " nmae: string; calories: number; is not assignable to parameter of type "Food". Property "name" is missing in type " nmae: string; calories: number; ".

Classes

Trong những dự án, ứng dụng lớn, lập trình sẵn hướng đối tượng người tiêu dùng rất xuất xắc được các Dev thực hiện nhất là trong các ngôn ngữ như Java hoặc C#.

TypeScript hỗ trợ hệ thống class khá tương đương với những ngôn ngữ này lấy ví dụ như tính năng kế thừa, abstract classes, interface implementations, setter/getters, …

Từ phiên bản ECMAScript năm ngoái trở đi, classes được xem như là một hào kiệt có sẵn vào JS và có thể không cần thực hiện TypeScript. Mặc dù 2 phiên bạn dạng này gồm nhiều tính năng tương trường đoản cú nhau, nhưng chúng vẫn đang còn điểm khác biệt, chính là TypeScript nghiêm ngặt hơn.

Ví dụ:

class thực đơn { // Our properties: // By default they are public, but can also be private or protected. Items: Array; // The items in the menu, an array of strings. Pages: number; // How many pages will the menu be, a number. // A straightforward constructor. Constructor(item_list: Array, total_pages: number) // The this keyword is mandatory. This.items = item_list; this.pages = total_pages; // Methods list(): void { console.log("Our special meal today is:"); for(var i=0; iCú pháp này khá rất gần gũi cho dân Java hoặc C#. Tương tự như cho kế thừa:

class HappyMeal extends thực đơn { // Properties are inherited // A new constructor has to lớn be defined. Constructor(item_list: Array, total_pages: number) // In this case we want the exact same constructor as the parent class (Menu), // to automatically copy it we can call super() - a reference to the parent"s constructor. Super(item_list, total_pages); // Just like the properties, methods are inherited from the parent. // However, we want to override the list() function so we redefine it. List(): void{ console.log("Our special menu for children:"); for(var i=0; i

Modules

Tính module hóa rất đặc biệt khi các bạn đang tiến hành những dự án công trình lớn. Nó phân loại code thành nhiều thành phần nhỏ dại và còn có khả năng tái sử dụng giúp dự án của doanh nghiệp dễ tổ chức triển khai và dễ hiểu hơn so với tệp tin có hàng chục ngàn dòng code.

TypeScript có công dụng exporting cùng importing các module, nhưng bạn dạng thân nó không thể cách xử trí thực sự việc liên kết giữa những file. Dùng require.js cho những ứng dụng client và CommonJS mang đến Node.js để có thể chấp nhận được modules TS dựa trên những thư viện của bên thứ ba.

Đặt trường hợp gồm 2 file: 1 file export một hàm, 1 file import, họ sẽ điện thoại tư vấn nó là:

exporter.ts

var sayHi = function(): void console.log("Hello!");export = sayHi;importer.ts

import sayHi = require("./exporter");sayHi();Để có thể dứt thao tác, cần download require.js và thêm nó trong một thẻ script – xem lí giải typescript là gì của requirejs.org. Tiếp nối biên dịch 2 file .ts. Mộ tham số không ngừng mở rộng cần được chế tạo để nói với TypeScript họ đang xây dựng những module mang đến require.js (còn được hotline là AMD):

tsc --module amd *.ts

Generics

Chức năng của Generics là có thể chấp nhận được cùng một hàm tất cả thể gật đầu các tham số với nhiều kiểu khác nhau. Việc tạo thành các thành phần rất có thể tái áp dụng với generics xuất sắc hơn thực hiện kiểu any, bởi vì generics bảo tồn kiểu của những biến vào với ra của chúng.

Ví dụ: Generics vào ví dụ dưới đây đã nhận được một tham số với trả lại một mảng chứa cùng tham số

// The after the function name symbolizes that it"s a generic function.// When we gọi the function, every instance of T will be replaced with the actual provided type.// Receives one argument of type T,// Returns an array of type T.function genericFunc(argument: T): T<> var arrayOfT: T<> = <>; // Create empty array of type T. ArrayOfT.push(argument); // Push, now arrayOfT = . Return arrayOfT;var arrayFromString = genericFunc("beep");console.log(arrayFromString<0>); // "beep"console.log(typeof arrayFromString<0>) // Stringvar arrayFromNumber = genericFunc(42);console.log(arrayFromNumber<0>); // 42console.log(typeof arrayFromNumber<0>) // numberLần trước tiên gọi hàm bọn họ thiết lập loại thành string. Điều này sẽ không bắt buộc vì chưng trình biên dịch rất có thể xem tham số được truyền và tự động quyết định thứ hạng nào cân xứng nhất, y hệt như lần call hàm máy 2.

Mặc dù không bắt buộc, luôn luôn hỗ trợ kiểu được xem là cần thiết vì trình biên dịch có thể đoán không nên kiểu trong số kịch phiên bản phức tạp.

Xem thêm: Hệ Phương Trình Có Nghiệm Duy Nhất Cực Hay, Hệ Phương Trình Bậc Nhất Hai Ẩn

Tài liệu hướng dẫn của TypeScript là gì bao gồm một vài lấy ví dụ như cao cấp bao hàm generics classes, kết hợp chúng với interfaces, …ở typescriptlang.org.