Type aliasing

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Script error: No such module "Portal". Type aliasing is a feature in some programming languages that allows creating a reference to a type using another name. It does not create a new type hence does not increase type safety. It can be used to shorten a long name. Languages allowing type aliasing include: C++, C# Crystal, D, Dart, Elixir, Elm, F#, Go, Hack, Haskell, Julia, Kotlin, Nim, OCaml, Python, Rust, Scala, Swift and TypeScript.

Example

C++

C++ features type aliasing using the using keyword.

using Distance = int;

C#

C# since version 12 features type aliasing using the using keyword.[1]

using Distance = int;

Crystal

Crystal features type aliasing using the alias keyword.[2]

alias Distance = Int32;

D

D features type aliasing using the alias keyword.[3]

alias Distance = int;

Dart

Dart features type aliasing using the typedef keyword.[4]

typedef Distance = int;

Elixir

Elixir features type aliasing using @type.[5]

@type Distance :: integer

Elm

Elm features type aliasing using type alias.

type alias Distance = Int

F#

F3 features type aliasing using the type keyword.

type Distance = int

Go

Go features type aliasing using the type keyword and =.

type Distance = int

Hack

Hack features type aliasing using the newtype keyword.[6]

newtype Distance = int;

Haskell

Haskell features type aliasing using the type keyword.[7]

type Distance = Int;

Julia

Julia features type aliasing.[8]

const Distance = Int

Kotlin

Kotlin features type aliasing using the typealias keyword.[9]

typealias Distance = Int

Nim

Nim features type aliasing.[10]

type
  Distance* = int

OCaml

OCaml features type aliasing.[11]

type distance = int

Python

Python features type aliasing.[12]

Vector = list[float]

Type aliases may be marked with TypeAlias to make it explicit that the statement is a type alias declaration, not a normal variable assignment.

from typing import TypeAlias

Vector: TypeAlias = list[float]

Rust

Rust features type aliasing using the type keyword.[13]

type Point = (u8, u8);

Scala

Scala can create type aliases using opaque types.[14]

object Logarithms:
  opaque type Logarithm = Double

Swift

Swift features type aliasing using the typealias keyword.

typealias Distance = Int;

TypeScript

TypeScript features type aliasing using the type keyword.[15]

type Distance = number;

Zig

Zig features type aliasing by assigning a data type to a constant.[16]

const distance = u32;

References

<templatestyles src="Reflist/styles.css" />

  1. Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".
  6. Script error: No such module "citation/CS1".
  7. Script error: No such module "citation/CS1".
  8. Script error: No such module "citation/CS1".
  9. Script error: No such module "citation/CS1".
  10. Script error: No such module "citation/CS1".
  11. Script error: No such module "citation/CS1".
  12. Script error: No such module "citation/CS1".
  13. Script error: No such module "citation/CS1".
  14. Script error: No such module "citation/CS1".
  15. Script error: No such module "citation/CS1".
  16. Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".

Template:Data types