Тип данных any javascript

Базовый Тип Any

То, что TypeScript является типизированной надстройкой над JavaScript, от которой после компиляции не остаётся и следа, означает, что первый перенял от второго всю его идеологию. Одним из таких моментов является разделение типов данных на типы значения (примитивные) и ссылочные типы. TypeScript определяет неизвестный в мире JavaScript тип any являющийся базовым для всех остальных типов. Именно по этой причине с него и начнется знакомство с системой типов TypeScript.

Any (any) произвольный тип

Тип any указывается при помощи ключевого слова any . Все типы в TypeScript являются его подтипами. Это означает, что он совместим в обе стороны с любым другим типом и с точки зрения системы типов является высшим типом (top type).

let apple: any = 0; apple = ""; apple = true;

Поскольку значение принадлежащие к типу any совместимо с любыми другими значениями, это может привести к непредсказуемым последствиям. Поэтому указывать данный тип в аннотации настоятельно рекомендуется только в самых крайних случаях. К примеру при применении техники TDD , которая подразумевает написание тестов раньше самого кода, тип некоторых конструкций может быть неизвестен. В таком и любых других подобных случаях any допустимо указать в аннотации типа. В остальных случаях настоятельно рекомендуется рассматривать варианты с более конкретными типами.

Поскольку тип any позволяет работать со значением динамически, это не вызывает ошибок при обращении к неописанным в типе членам, что сводит пользу от типизации к нулю.

Примером этого может служить сервис, который работает с сервером посредством api. Полученные и сериализованные данные могут храниться как тип any прежде чем они будут и преобразованы к конкретному типу.

let data: any = JSON.parse(''); let id = data.id; // ок

Если при объявлении переменных и полей не было присвоено значение, компилятором будет выведен тип данных any .

var apple; // apple: any let lemon; // lemon: any class Fruit name; // name: any >

То же правило касается и параметров функций.

function weight(fruit) // fruit: any >

Кроме того, если функция возвращает значение принадлежащее к типу, который компилятор не в состоянии вывести, то возвращаемый этой функцией тип данных будет также будет выведен как тип any .

function sum(a, b) // function sum(a: any, b: any): any return a + b; >

Тип any является уникальным для TypeScript, в JavaScript подобного типа не существует.

Источник

Базовый Тип Any¶

То, что TypeScript является типизированной надстройкой над JavaScript, от которой после компиляции не остаётся и следа, означает, что первый перенял от второго всю его идеологию. Одним из таких моментов является разделение типов данных на типы значения (примитивные) и ссылочные типы. TypeScript определяет неизвестный в мире JavaScript тип any , являющийся базовым для всех остальных типов. Именно по этой причине с него и начнется знакомство с системой типов TypeScript.

Any произвольный тип¶

Тип any указывается при помощи ключевого слова any . Все типы в TypeScript являются его подтипами. Это означает, что он совместим в обе стороны с любым другим типом и с точки зрения системы типов является высшим типом (top type).

let apple: any = 0; apple = ''; apple = true; 

Поскольку значение, принадлежащее к типу any , совместимо с любыми другими значениями, это может привести к непредсказуемым последствиям. Поэтому указывать данный тип в аннотации настоятельно рекомендуется только в самых крайних случаях. К примеру, при применении техники TDD , которая подразумевает написание тестов раньше самого кода, тип некоторых конструкций может быть неизвестен. В таком и любых других подобных случаях any допустимо указать в аннотации типа. В остальных случаях настоятельно рекомендуется рассматривать варианты с более конкретными типами.

Поскольку тип any позволяет работать со значением динамически, это не вызывает ошибок при обращении к неописанным в типе членам, что сводит пользу от типизации к нулю.

Примером этого может служить сервис, который работает с сервером посредством api. Полученные и сериализованные данные могут храниться как тип any , прежде чем они будут преобразованы к конкретному типу.

let data: any = JSON.parse(''); let id = data.id; // ок 

Если при объявлении переменных и полей не было присвоено значение, компилятором будет выведен тип данных any .

var apple; // apple: any let lemon; // lemon: any class Fruit  name; // name: any > 

То же правило касается и параметров функций.

function weight(fruit)  // fruit: any > 

Кроме того, если функция возвращает значение, принадлежащее к типу, который компилятор не в состоянии вывести, то возвращаемый этой функцией тип данных будет также будет выведен как тип any .

function sum(a, b)  // function sum(a: any, b: any): any return a + b; > 

Тип any является уникальным для TypeScript, в JavaScript подобного типа не существует.

Источник

Читайте также:  Конечный автомат в питоне
Оцените статью