Any
Any é a cláusula de escape do Typescript. Você pode usar any para
declarar uma seção do seu código para ser dinâmica ou semelhante ao
JavaScript, ou para contornar as limitações do sistema de tipos.
Um bom caso de uso para any é o parsing de JSON:
// Any declara ao Typescript para confiar no seu código
como sendo seguro porque você sabe mais sobre ele, mesmo se isso
não seja estritamente verdadeiro.
Por exemplo, esse código iria falhar:
const myObject = JSON.parse("{}");
// Utilizar any provê a você a habilidade de escrever código próximo
ao JavaScript original sem a segurança de tipos.
Any é muito semelhante a um 'tipo coringa' do qual
você pode substituir com qualquer tipo (exceto never)
para fazer um tipo atribuível a outro.
myObject.x.y.z;
// Cada chamada para debug é permitida porque você pode substituir o
tipo any com o tipo do argumento correspondente.
TypeScript irá considerar a posição dos anys de diferentes formas,
como, por exemplo, com essas tuplas como argumento da função.
declare function debug(value: any): void;
debug("a string");
debug(23);
debug({ color: "blue" });
// A chamada de swap é autorizada porque o argumento pode ser
correspondente ao repor o primeiro any do par com um
número e o segundo any com uma string.
Se tuplas são novas para você, veja: example:tuples
Unknown é um irmão do tipo any, any é como dizer "Eu sei
o que é melhor", já Unknown é como dizer "Eu não sei o que
é o melhor, então você precisa dizer ao TS o tipo".
example:unknown-and-never
declare function swap(x: [number, string]): [string, number];
declare const pair: [any, any];
swap(pair);