将值拆分为子字符串字段时出错

Error splitting value into substring fields

我是 typescript 的新手,我正在尝试使用 typescript 从 DynamoDB 中的字段中提取数据。我需要能够将字符串字段拆分为 2 个子字符串并存储在 2 个单独的变量中。

示例数据:

Id    days  end             createdAt   type
123   3     2021-07-22#AM   21/10/2020  Leave#Upskilling
342   7     2021-10-22#PM   15/02/2021  Long Term Leave#Parental

预期输出数据:

Id    days    end              createdAt     type                  subleavetype
123   3       2021-07-22#AM    21/10/2020    Leave                 Upskilling
342   7       2021-10-22#PM    15/02/2021    Long Term Leave       Parental

这是我到目前为止所做的:

   recordsToJoin.push(
    getAttributeValue(newImage.id),
    getAttributeValue(newImage.days), 
    getAttributeValue(newImage.end),
    getAttributeValue(newImage.createdAt, true),
    getAttributeValue(newImage.type.split('#')[0])),
    getAttributeValue(newImage.type.split('#')[1]), 
  );

但是,我遇到了错误,所以请帮忙。

这是我们为获取属性值调用的代码文件..

import { AttributeValue } from 'aws-sdk/clients/dynamodb';
import { decodeTimestamp } from '../dates/dates';

export const getAttributeValue = (
  attribute: AttributeValue,
  isDate = false,
): string => {
  if (attribute == null) {
    return '';
  }
  const keys = Object.keys(attribute);
  if (isDate) {
    if (keys[0] == 'N') {
      return decodeTimestamp(Number(attribute.N));
    } else {
      return '';
    }
  } else if (keys[0] == 'S') {
    return attribute.S;
  } else if (keys[0] == 'N') {
    return attribute.N;
  } else if (keys[0] == 'NULL') {
    return '';
  } else if (keys[0] == 'BOOL') {
    return attribute.BOOL.toString();
  } else {
    //else if statement can be extended to add more types
    return '';
  }
};

export const getCommaSeparatedValues = (
  attributeList: AttributeValue[],
): string => {
  const attributes: string[] = [];
  for (const attribute of attributeList) {
    attributes.push(attribute.S);
  }
  return attributes.join(',');
};

错误消息是:属性 'split' 在类型 'AttributeValue' 上不存在。

抛出错误是因为您之前正在拆分以获取值

recordsToJoin.push(
   getAttributeValue(newImage.id),
   getAttributeValue(newImage.days), 
   getAttributeValue(newImage.end),
   getAttributeValue(newImage.createdAt, true),
   getAttributeValue(newImage.type).split('#')[0],
   getAttributeValue(newImage.type).split('#')[1], 
);