На самом деле вы должны определить свои стили в res/values/styles.xml
. Думаю, теперь у вас есть следующая конфигурация:
, поэтому, если вы хотите использовать Theme.Black , измените родительский пункт AppBaseTheme на android:Theme.Black
, или вы можете изменить стиль приложения непосредственно в файле манифеста следующим образом: android:theme="@android:style/Theme.Black"
. Перед тегом style вам не хватает пространства имен android .
Здесь вы можете узнать больше о стилях и темах здесь .
TLDR : это ожидаемое поведение в TypeScript из-за того, как работает проверка избыточного свойства .
В вашем случае определенная вами функция стрелки имеет тип возвращаемого значения, который имеет избыточные (или дополнительные) свойства. Для TypeScript это совершенно нормально.
В упрощенном примере, посмотрите на это поведение:
type a = () => { a: string };
type b = () => { a: string, b: string };
declare let myA: a;
declare let myB: b;
myA = myB; // OK! (excess properties are not checked)
myB = myA; // Error: missing required property 'b'
Суть вашей проблемы в том, что вы по существу присваиваете myB
для myA
и ожидаете ошибка, но вы получите ошибку только при назначении myA
для myB
.
У вас есть несколько вариантов, чтобы заставить ваш код работать должным образом (например, тот, который вы предложили, где вы явно определяете тип возвращаемого значения), но ни один из них не идеален, пока TypeScript не поддерживает точный types (есть открытая проблема для точных типов, которая обсуждает ваш точный вариант использования с редукцией и некоторые обходные пути).
как Кристиан Сантос заявил, что это ожидаемое поведение.
Если вы хотите испытать безопасный тип-редукс, то я предлагаю вам взглянуть на какое-то расширение для редукса, которое было разработано с учетом этого!
проверить redux-fluent