官术网_书友最值得收藏!

Type annotations

Types for JavaScript variables are determined at runtime. Types for JavaScript variables can also change at runtime. For example, a variable that holds a number can later be replaced by a string. Usually, this is unwanted behavior and can result in a bug in our app.

TypeScript annotations let us declare variables with specific types when we are writing our code. This allows the TypeScript compiler to check that the code adheres to these types before the code executes at runtime. In short, type annotations allow TypeScript to catch bugs where our code is using the wrong type much earlier than we would if we were writing our code in JavaScript.

TypeScript annotations let us declare variables with types using the :Type syntax.

  1. Let's browse to the TypeScript playground and enter the following variable declaration into the left-hand pane:
let unitPrice: number;
  1. The transpiled JavaScript will appear on the right-hand side as follows:
var unitPrice;
That let has been converted to var. This is because the compiler that the playground uses is set to target a wide range of browsers, some of which don't support let . Also, notice that the type annotation has disappeared. This is because type annotations don't exist in JavaScript.
  1. Let's add a second line to our program:
unitPrice = "Table";

Notice that a red line appears under unitPrice, and if you hover over it, you are correctly informed that there is a type error:

  1. You can also add type annotations to function parameters for the return value using the same :Type syntax. Let's enter the following function into the playground:
function getTotal(unitPrice: number, quantity: number, discount: number): number {
const priceWithoutDiscount = unitPrice * quantity;
const discountAmount = priceWithoutDiscount * discount;
return priceWithoutDiscount - discountAmount;
}

We've declared unitPrice, quantity, and discount parameters, all as numbers. The return type annotation comes after the function's parentheses, which is also a number in the preceding example.

We have used both const and let to declare variables in different examples. let will allow the variable to change the value after the declaration, whereas const variables can't change. In the preceding function, priceWithoutDiscount and discountAmount never change the value after the initial assignment, so we have used const.
  1. Let's call our function with an incorrect type for quantity and assign the result to a variable with an incorrect type:
let total: string = getTotal(500, "one", 0.1);

We find that one is underlined in red, highlighting that there is a type error:

  1. If we then correct one to 1, total should be underlined in red, highlighting that there is a type problem with that:

The TypeScript compiler uses type annotations to check whether values assigned to variables and function parameters are valid for their type.

This strong type checking is something that we don't get in JavaScript, and it is very useful in large code bases because it helps us immediately detect type errors.

主站蜘蛛池模板: 平阴县| 肇源县| 昌江| 石台县| 双桥区| 岳池县| 修武县| 大悟县| 沈丘县| 咸宁市| 凤阳县| 陈巴尔虎旗| 广昌县| 屯留县| 汕头市| 洛宁县| 运城市| 贡嘎县| 桐柏县| 读书| 定南县| 濮阳县| 黔江区| 乡宁县| 达尔| 福建省| 怀仁县| 平和县| 武隆县| 宣汉县| 富民县| 布尔津县| 龙江县| 黎川县| 饶河县| 嘉定区| 探索| 遂昌县| 明溪县| 宜丰县| 义乌市|