typescript

typeorm No changes in database schema were found // Опция synchronize: false

В ответ на комаду migration:generate, получаем:

No changes in database schema were found - cannot generate a migration. To create a new empty migration use "typeorm migration:create" command

В моем случае объект конфигурации был таким (распечатка):

ts-jest The 'import.meta' meta-property is only allowed (typescript) Ошибка, решение

TS1343: The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'esnext', or 'system'.

При это этом tsconfig.json выглядит так:

ts-node Did you mean to import Импорт .js файлов без указания расширения

Did you mean to import

Самое интересное, что ts-jest успешно справляется (см. конфигурацию) с этой проблемой импорта ,js файлов, но ts-node так не может

Подробнее по проблеме см. тут: http://fkn.ktu10.com/?q=node/13677

ts-node Запуск файлов с импортом .js файлов без указания расширения для файлов javascript ESM

Файл run.ts в котором, есть импорты .js файлов без указания расширения, можно запустить так (используем пакет ts-node):

node --experimental-specifier-resolution=node  --loader ts-node/esm run.ts

При этом tsdonfig.json (у вас может отличаться):

The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'esnext', or 'system'.ts(1343) Ошибка

The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'esnext', or 'system'.ts(1343)

Возможное решение

Установите опцию module файла tsconfig.json например в "es2020", пример в контексте:

typescript interface Значение свойства объекта как ключ (имя свойства) для интерфейса

A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type

Минимальный пример демонстрации проблемы:

const myobj: Record<string, number> = {
  a: 1,
  b: 2,
}

interface myinter  {
  [myobj.a]: string, // problem here
}

refers to a value, but is being used as a type here. Did you mean 'typeof ...'? ts(2749) Ошибка JSX React

Если в вашем случае ошибка возникается в JSX разметке вида:

return (
    <TextInput
    label={label}
    value={value} // код посвечивается как недостижимый!
    formatInputValue={formatInputValue}
    onChange={onChange}
  />  
);

-то, возможно, причина просто в том, что у расширение файла .ts а не .tsx и поэтому он анализируется под другим правилам

Решение для JSX

Исправить расширение файла на .tsx

typescript object Тип ключей (свойств) объекта - как его ограничить, задать тип ключей

Например так:

export type EventsHandlersGroup = {
  point: number,
  line:  number;
};

export type EventsGroupsList = {
  [key: number]: EventsHandlersGroup;
};

-- т.е. тип ключа для EventsGroupsList мы задали как числовой инструкцией:

 [key: number]

typescript ComponentClass vs Component Отличия стандартных типах React

  • React.Component служит для того чтобы быть базовым типом для вашего класса - классового компонента:
    interface Props {
        products: string[];
    }
    interface State {
        quantities: { [key: string]: number };
    }
    class MyComponent extends React.Component<Props, State> {
    //.....

    -- для использования типа React.Component в вашем коде какой-то класс должен реально наследоваться от React.Component (и в случае если вы используете typescript, его парсер должен быть способен это обнаружить)/

typescript Общий тип для функциональных и классовых компонентов React

Универсальным типом одновремено подходящим для классовых и функциональных компонентов , судя по всему, является React.ComponentType (далее его сигнатура из исходников React):

type ComponentType<P = {}>
     = ComponentClass<P> | FunctionComponent<P>;

-- подходит в т.ч. для случая когда вы получаете переменную, а потом делаете из неё JSX-элемент (добавляя к имени угловые скобки и выставляя пропсы)

Например:

Pages

Subscribe to RSS - typescript