Julia has a type system built-in, so there is no need to build a library on top for type support.
For example, the TypeScript website shows
interface Account {
id: number
displayName: string
version: 1
}
function welcome(user: Account) {
console.log(user.id)
}
In Julia, you can write this as
julia> Base.@kwdef struct Account
id::Number
name::String
version::Int = 1
end;
julia> function welcome(user::Account)
println("Welcome $(user.name)!")
end;
julia> user = Account(; id=1, name="Sally")
Account(1, "Sally", 1)
julia> welcome(user)
Welcome Sally!