TLI18nMessageInput
A message as it's written. The id is optional because a bundler plugin may supply it: @formatjs/unplugin with an idInterpolationPattern derives one from the message's own text, which is how tldraw.com does it. Everywhere downstream takes a TLI18nMessage, whose id is required, because defineMessages fills one in.
type TLI18nMessageInput = Omit<TLI18nMessage, "id"> & {
id?: string;
};Prev
TLI18nAdapterNext
TLI18nValues